﻿#define NULL

using System;

//C++ TO C# CONVERTER CRACKED BY X-CRACKER 2017 NOTE: The following #define macro was replaced in-line:
//ORIGINAL LINE: #define LOG(format, ...) printf(">> " format "\n", ##__VA_ARGS__)
//C++ TO C# CONVERTER CRACKED BY X-CRACKER 2017 NOTE: The following #define macro was replaced in-line:
//ORIGINAL LINE: #define NULL (void*)0

#if WIN32 || _WIN32 || __WIN32__ || __NT__
// #ifdef _WIN64
// #include "../windows/unicorn-1.0.1-win64/include/unicorn/unicorn.h"
// #else
//C++ TO C# CONVERTER CRACKED BY X-CRACKER 2017 WARNING: The following #include directive was ignored:
//#include "../windows/unicorn-1.0.2-win32/include/unicorn/unicorn.h"
// #endif
#endif

#if ! EM_PORT_API
#if __EMSCRIPTEN__
//C++ TO C# CONVERTER CRACKED BY X-CRACKER 2017 TODO TASK: #define macros defined in multiple preprocessor conditionals can only be replaced within the scope of the preprocessor conditional:
//C++ TO C# CONVERTER CRACKED BY X-CRACKER 2017 NOTE: The following #define macro was replaced in-line:
//ORIGINAL LINE: #define EM_PORT_API(rettype) rettype EMSCRIPTEN_KEEPALIVE
#define EM_PORT_API
//C++ TO C# CONVERTER CRACKED BY X-CRACKER 2017 WARNING: The following #include directive was ignored:
//#include "../wasm/unicorn/unicorn.h"
#else
//C++ TO C# CONVERTER CRACKED BY X-CRACKER 2017 TODO TASK: #define macros defined in multiple preprocessor conditionals can only be replaced within the scope of the preprocessor conditional:
//C++ TO C# CONVERTER CRACKED BY X-CRACKER 2017 NOTE: The following #define macro was replaced in-line:
//ORIGINAL LINE: #define EM_PORT_API(rettype) rettype
//#define EM_PORT_API
//#endif
#endif


#if ! NULL
#endif

//C++ TO C# CONVERTER CRACKED BY X-CRACKER 2017 NOTE: The following #define macro was replaced in-line:
//ORIGINAL LINE: #define rb_parent(r) ((struct rb_node *)((r)->rb_parent_color & ~3))
//C++ TO C# CONVERTER CRACKED BY X-CRACKER 2017 NOTE: The following #define macro was replaced in-line:
//ORIGINAL LINE: #define rb_color(r) ((r)->rb_parent_color & 1)
//C++ TO C# CONVERTER CRACKED BY X-CRACKER 2017 NOTE: The following #define macro was replaced in-line:
//ORIGINAL LINE: #define rb_is_red(r) (!rb_color(r))
//C++ TO C# CONVERTER CRACKED BY X-CRACKER 2017 NOTE: The following #define macro was replaced in-line:
//ORIGINAL LINE: #define rb_is_black(r) rb_color(r)
//C++ TO C# CONVERTER CRACKED BY X-CRACKER 2017 NOTE: The following #define macro was replaced in-line:
//ORIGINAL LINE: #define rb_set_red(r) do { (r)->rb_parent_color &= ~1; } while (0)
//C++ TO C# CONVERTER CRACKED BY X-CRACKER 2017 NOTE: The following #define macro was replaced in-line:
//ORIGINAL LINE: #define rb_set_black(r) do { (r)->rb_parent_color |= 1; } while (0)
//C++ TO C# CONVERTER CRACKED BY X-CRACKER 2017 NOTE: The following #define macro was replaced in-line:
//ORIGINAL LINE: #define RB_ROOT (struct rb_root) { NULL, }
//C++ TO C# CONVERTER CRACKED BY X-CRACKER 2017 NOTE: The following #define macro was replaced in-line:
//ORIGINAL LINE: #define rb_entry(ptr, type, member) container_of(ptr, type, member)
//C++ TO C# CONVERTER CRACKED BY X-CRACKER 2017 NOTE: The following #define macro was replaced in-line:
//ORIGINAL LINE: #define container_of(ptr, type, member) ({ const typeof( ((type *)0)->member ) *__mptr = (ptr); (type *)( (char *)__mptr - offsetof(type,member) );})
//C++ TO C# CONVERTER CRACKED BY X-CRACKER 2017 NOTE: The following #define macro was replaced in-line:
//ORIGINAL LINE: #define RB_EMPTY_ROOT(root) ((root)->rb_node == NULL)
//C++ TO C# CONVERTER CRACKED BY X-CRACKER 2017 NOTE: The following #define macro was replaced in-line:
//ORIGINAL LINE: #define RB_EMPTY_NODE(node) (rb_parent(node) == node)
//C++ TO C# CONVERTER CRACKED BY X-CRACKER 2017 NOTE: The following #define macro was replaced in-line:
//ORIGINAL LINE: #define RB_CLEAR_NODE(node) (rb_set_parent(node, node))

#if ! offsetof
//C++ TO C# CONVERTER CRACKED BY X-CRACKER 2017 TODO TASK: #define macros defined in multiple preprocessor conditionals can only be replaced within the scope of the preprocessor conditional:
//C++ TO C# CONVERTER CRACKED BY X-CRACKER 2017 NOTE: The following #define macro was replaced in-line:
//ORIGINAL LINE: #define offsetof(type, field) ((size_t) & ((type *)0)->field)
//#define offsetof
#endif
#if ! countof
//C++ TO C# CONVERTER CRACKED BY X-CRACKER 2017 TODO TASK: #define macros defined in multiple preprocessor conditionals can only be replaced within the scope of the preprocessor conditional:
//C++ TO C# CONVERTER CRACKED BY X-CRACKER 2017 NOTE: The following #define macro was replaced in-line:
//ORIGINAL LINE: #define countof(x) (sizeof(x) / sizeof((x)[0]))
//#define countof
#endif

#if __x86_64__
#define PRId
#define PRIX
#elif __i386__
#define PRId
#define PRIX
#endif

public struct uIntMap
{
	public rb_node node;
	public long key;
	public unsafe void* data;
}

#endif